iT邦幫忙

2026 iThome 鐵人賽

DAY 6
0
Software Development

玩轉ABCL Lisp!用奇怪偏門的方式學習JavaFX系列 第 6

lesson -5: Linux怎麼準備JAVA開發環境?

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20260919/20112470iM4so3WizE.png

Linux怎麼安裝JAVA環境?以LinuxMint為例(Ubuntu、Debian可用)

TL;DR: 只需要執行Java程式或使用ABCL時,安裝JRE即可;需要Java開發工具時,請安裝JDK。安裝多個版本後,可以使用update-java-alternatives切換,最後用java -version確認目前使用的版本。

通常Linux發行版大軟體倉庫有JAVA運行與開發工具的安裝套件。以我在使用的LinuxMint為例,可以透過apt search java進行查詢:

i   java-common                     - Base package for Java runtimes            
v   java-common:i386                -                                           
v   java-compiler                   -                                           
v   java-compiler:i386              -                                           
p   java-package                    - Utility for creating Java Debian packages 
p   java-policy                     - Debian Java Policy                        
p   java-propose-classpath          - Helper script to suggest a classpath for j
v   java-runtime                    -                                           
v   java-runtime:i386               -                                           
v   java-runtime-headless           -                                           
v   java-runtime-headless:i386      -                                           
v   java-sdk                        -                                           
v   java-sdk:i386                   -                                           
v   java-sdk-headless               -                                           
v   java-sdk-headless:i386          -                                           
i   java-wrappers                   - wrappers for java executables             
v   java20-runtime:i386             -                                           
v   java20-runtime-headless         -                                           
v   java20-runtime-headless:i386    -                                           
v   java20-sdk                      -                                           
v   java20-sdk:i386                 -                                           
v   java20-sdk-headless             -                                           
v   java20-sdk-headless:i386        -                                           
v   java21-runtime                  -                                           
v   java21-runtime:i386             -                                           
v   java21-runtime-headless         -                                           
v   java21-runtime-headless:i386    -                                           
v   java21-sdk                      -                                           
v   java21-sdk:i386                 -                                           
v   java21-sdk-headless             -                                           
v   java21-sdk-headless:i386        -                                           

在我的查詢當下,就有JAVA 18、19、20、21的版本可用(有更舊的)。可以都安裝,再透過update-java-alternatives進行切換。也可以在Oracle官方找到安裝套件。不過我更習慣使用OpenJDK的實現(Oracle的實現版本中,記得需要另外簽署一份協議。後來就逐漸習慣直接使用OpenJDK了),同樣可以用apt search openjdk查到:

p   openjdk-18-doc                  - OpenJDK Development Kit (JDK) documentatio
p   openjdk-18-jdk                  - OpenJDK Development Kit (JDK)             
p   openjdk-18-jre                  - OpenJDK Java runtime, using Hotspot JIT   
p   openjdk-18-jre-zero             - Alternative JVM for OpenJDK, using Zero   
p   openjdk-18-source               - OpenJDK Development Kit (JDK) source files
p   openjdk-21-doc                  - OpenJDK Development Kit (JDK) documentatio
p   openjdk-21-jdk                  - OpenJDK Development Kit (JDK)             
p   openjdk-21-jre                  - OpenJDK Java runtime, using Hotspot JIT   
p   openjdk-25-doc                  - OpenJDK Development Kit (JDK) documentatio
i   openjdk-25-jdk                  - OpenJDK Development Kit (JDK)             
i   openjdk-25-jre                  - OpenJDK Java runtime, using Hotspot JIT   

查詢的結果通常會看到JRE(runtime)和JDK(SDK)兩種。前者是給只需要JAVA運行的人安裝的,如果只打算使用ABCL去呼叫JavaFX,可以只安裝運行時環境(JRE),否則對於JAVA開發人員,可以直接選擇開發套件工具(SDK/JDK),同樣也會包含運行時環境。在查到需要安裝的套件後,使用sudo apt install <套件名稱>進行安裝,像是sudo apt install openjdk-25-jdk。可以安裝多個版本,同樣可以利用update-java-alternatives --list確認可切換的工具版本:

java-1.11.0-openjdk-amd64      1111       /usr/lib/jvm/java-1.11.0-openjdk-amd64
java-1.17.0-openjdk-amd64      1711       /usr/lib/jvm/java-1.17.0-openjdk-amd64
java-1.25.0-openjdk-amd64      2511       /usr/lib/jvm/java-1.25.0-openjdk-amd64

然後透過sudo update-java-alternatives --set java-1.25.0-openjdk-amd64選擇替換使用的版本。java -version查詢當前的JAVA環境版本:

openjdk version "25.0.4" 2026-07-21
OpenJDK Runtime Environment (build 25.0.4+7-1-22.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 25.0.4+7-1-22.04-Ubuntu, mixed mode, sharing)

我有安裝JDK,可以透過javac -version檢查JDK版本:javac 25.0.4


關於update-alternatives進一步使用

如果是可執行檔案的狀況,也可以設定JAVA_HOME環境變數,並在PATH變數添加${JAVA_HOME}/bin。甚至有時候我會直接明確指明需要使用的java執行路徑。但有運行版本管理套件還是比較方便的,對於個人使用來說,發行版帶的update-alternatives工具已經足夠多數時候使用。

除了前述使用update-java-alternatives,我可以透過update-alternatives --list java查詢可用的java位置:

/usr/lib/jvm/java-11-openjdk-amd64/bin/java
/usr/lib/jvm/java-17-openjdk-amd64/bin/java
/usr/lib/jvm/java-25-openjdk-amd64/bin/java

然後直接透過路徑執行:

$(update-alternatives --list java|tail -n 1) -version 
openjdk version "25.0.4" 2026-07-21
OpenJDK Runtime Environment (build 25.0.4+7-1-22.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 25.0.4+7-1-22.04-Ubuntu, mixed mode, sharing)

通常java會放在JAVA_HOME的bin目錄下,像這樣可以鎖定OpenJDK 25的目錄位置:export JAVA_HOME=/usr/lib/jvm/java-25-openjdk-amd64
然後將${JAVA_HOME}/bin加入PATH環境變數下:export PATH="${JAVA_HOME}/bin":"${PATH}"。這樣同樣可以變更JAVA_HOME環境來找指定使用的JAVA版本。這也是Windows手動安裝JAVA的使用方式。

安裝檢查清單

重新開啟終端機後,可以依序確認以下項目:

  • 執行java -version,確認Java可以正常執行。
  • 如果安裝的是JDK,再執行javac -version,確認Java編譯器可以正常執行。
  • 執行which java,確認系統找到Java執行檔。
  • 執行readlink -f "$(which java)",確認實際使用的Java執行檔位於預期的版本目錄。
  • 如果有手動設定JAVA_HOME,執行echo "$JAVA_HOME",確認它指向目前要使用的JDK目錄。

上一篇
lesson -4: Windows怎麼準備JAVA開發環境?
下一篇
lesson -6: 多版本JAVA環境該如何切換?
系列文
玩轉ABCL Lisp!用奇怪偏門的方式學習JavaFX7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言